<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link rel="stylesheet" href="../../../../style.css" type="text/css" media="screen">
<link rel="stylesheet" href="../../../../print.css" type="text/css" media="print">
<meta content="AsyncDataRequest,org.opensocial.client.features.AsyncDataRequest,addCompleteHandler,addErrorHandler,callback,getOptions" name="keywords">
<title>org.opensocial.client.features.AsyncDataRequest</title>
</head>
<body>
<script type="text/javascript" language="javascript" src="../../../../asdoc.js"></script><script type="text/javascript" language="javascript" src="../../../../cookies.js"></script><script type="text/javascript" language="javascript">
<!--
				asdocTitle = 'AsyncDataRequest - OpenSocial Actionscript 3.0 Client Library Documentation';
				var baseRef = '../../../../';
				window.onload = configPage;
			--></script>
<table style="display:none" id="titleTable" cellspacing="0" cellpadding="0" class="titleTable">
<tr>
<td align="left" class="titleTableTitle">OpenSocial Actionscript Client Library</td><td align="right" class="titleTableTopNav"><a onclick="loadClassListFrame('../../../../all-classes.html')" href="../../../../package-summary.html">All&nbsp;Packages</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../all-classes.html')" href="../../../../class-summary.html">All&nbsp;Classes</a>&nbsp;|&nbsp;<a onclick="loadClassListFrame('../../../../index-list.html')" href="../../../../all-index-A.html">Index</a>&nbsp;|&nbsp;<a href="../../../../index.html?org/opensocial/client/features/AsyncDataRequest.html&amp;org/opensocial/client/features/class-list.html" id="framesLink1">Frames</a><a onclick="parent.location=document.location" href="" style="display:none" id="noFramesLink1">No&nbsp;Frames</a></td><td rowspan="3" align="right" class="titleTableLogo"><img alt="Adobe Logo" title="Adobe Logo" class="logoImage" src="../../../../images/logo.jpg"></td>
</tr>
<tr class="titleTableRow2">
<td align="left" id="subTitle" class="titleTableSubTitle">Class&nbsp;AsyncDataRequest</td><td align="right" id="subNav" class="titleTableSubNav"><a href="#propertySummary">Properties</a>&nbsp;| <a href="#methodSummary">Methods</a>&nbsp;| <a href="#eventSummary">Events</a></td>
</tr>
<tr class="titleTableRow3">
<td colspan="2">&nbsp;</td>
</tr>
</table>
<script type="text/javascript" language="javascript">
<!--
if (!isEclipse() || window.name != ECLIPSE_FRAME_NAME) {titleBar_setSubTitle("Class AsyncDataRequest"); titleBar_setSubNav(false,true,false,false,true,false,true,false,false,false,false,false,false,false);}
--></script>
<div class="MainContent">
<table cellspacing="0" cellpadding="0" class="classHeaderTable">
<tr>
<td class="classHeaderTableLabel">Package</td><td><a onclick="javascript:loadClassListFrame('class-list.html')" href="package-detail.html">org.opensocial.client.features</a></td>
</tr>
<tr>
<td class="classHeaderTableLabel">Class</td><td class="classSignature">public class AsyncDataRequest</td>
</tr>
<tr>
<td class="classHeaderTableLabel">Inheritance</td><td class="inheritanceList">AsyncDataRequest <img class="inheritArrow" alt="Inheritance" title="Inheritance" src="../../../../images/inherit-arrow.gif"> <a href="AsyncRequest.html">AsyncRequest</a> <img class="inheritArrow" alt="Inheritance" title="Inheritance" src="../../../../images/inherit-arrow.gif"> flash.events.EventDispatcher</td>
</tr>
</table>
<p></p>
 Event dispatcher for all kinds of asynchronous OpenSocial related data requests.
 <p>
 This request covers <code><j>osapi.people</j></code>, <code><j>osapi.actvities</j></code>,
 <code><j>osapi.appdata</j></code> and <code><j>osapi.ui</j></code> services and is initialized
 by different <code>RequestOptions</code>. Here is the list:
 </p>
 <p>
 <table class=innertable>
 <tr><th>osapi service</th><th>RequestOptions</th></tr>
 <tr><td><code><j>osapi.people</j></code></td><td><code>PeopleRequestOptions</code></td></tr>
 <tr><td><code><j>osapi.actvities</j></code></td><td><code>ActivitiesRequestOptions</code></td></tr>
 <tr><td><code><j>osapi.appdata</j></code></td><td><code>AppDataRequestOptions</code></td></tr>
 <tr><td><code><j>osapi.ui</j></code></td><td><code>UIRequestOptions</code></td></tr>
 </table>
 </p>
 <p>
 Here lists the example codes for requesting friends of viewer (For more examples please see the 
 <code>SampleApp</code>):
 </p>
 <p></p>
<br>
<span class="label">Example</span>
<br> <div class='listing'><pre>
 private function fetchFriends():void {
   var req:AsyncDataRequest = new AsyncDataRequest(
       Feature.PEOPLE_GET,
       new PeopleRequestOptions()
           .setUserId("&#64;me")
           .setGroupId("&#64;friends")
           .setCount(5)              // Request 5 friends each time.
           .setStartIndex(0));       // First time starts with 0.
   req.addEventListener(ResponseItemEvent.COMPLETE, fetchFriendsEventHandler);
   req.send(client);                 // Send the async request and start to listen.
 }
 private function fetchFriendsEventHandler(event:ResponseItemEvent):void {
   var collection:Collection = event.response.getData();
   var people:Array = collection.getArray();
   for (var i:int = 0; i &lt; people.length; i++) {
     var person:Person = people[i];
     //do something with person...
   }
   // Continue to fetch the remaining friends
   if (collection.getRemainingSize() &gt; 0) {
     var req:AsyncDataRequest = event.target as AsyncDataRequest;
     (req.getOptions() as PeopleRequestOptions).setStartIndex(collection.getNextOffset());
     req.send(client);              // Send the async request and start to listen again.
   }
 }
 </pre></div>
 
 <p></p>
<p>
<span class="classHeaderTableLabel">See also</span>
</p>
<div class="seeAlso">
<a href="../base/ResponseItem.html" target="">org.opensocial.client.base.ResponseItem</a>
</div>
<br>
<hr>
</div>
<a name="propertySummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Properties</div>
<div class="showHideLinks">
<div class="hideInheritedProperty" id="hideInheritedProperty">
<a onclick="javascript:setInheritedVisible(false,'Property');" href="#propertySummary" class="showHideLink"><img src="../../../../images/expanded.gif" class="showHideLinkImage"> Hide Inherited Public Properties</a>
</div>
<div class="showInheritedProperty" id="showInheritedProperty">
<a onclick="javascript:setInheritedVisible(true,'Property');" href="#propertySummary" class="showHideLink"><img src="../../../../images/collapsed.gif" class="showHideLinkImage"> Show Inherited Public Properties</a>
</div>
</div>
<table id="summaryTableProperty" class="summaryTable hideInheritedProperty" cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Property</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="hideInheritedProperty">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="AsyncRequest.html#featureName">featureName</a> : String<div class="summaryTableDescription">
   Returns the request featrue name.</div>
</td><td class="summaryTableOwnerCol"><a href="AsyncRequest.html">AsyncRequest</a></td>
</tr>
<tr class="hideInheritedProperty">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="AsyncRequest.html#isRunning">isRunning</a> : Boolean<div class="summaryTableDescription">
   Indicates this request instance is running or not.</div>
</td><td class="summaryTableOwnerCol"><a href="AsyncRequest.html">AsyncRequest</a></td>
</tr>
<tr class="hideInheritedProperty">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol"><a class="signatureLink" href="AsyncRequest.html#params">params</a> : Array<div class="summaryTableDescription">
   Returns the request parameters array.</div>
</td><td class="summaryTableOwnerCol"><a href="AsyncRequest.html">AsyncRequest</a></td>
</tr>
</table>
</div>
<a name="methodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Public Methods</div>
<div class="showHideLinks">
<div class="hideInheritedMethod" id="hideInheritedMethod">
<a onclick="javascript:setInheritedVisible(false,'Method');" href="#methodSummary" class="showHideLink"><img src="../../../../images/expanded.gif" class="showHideLinkImage"> Hide Inherited Public Methods</a>
</div>
<div class="showInheritedMethod" id="showInheritedMethod">
<a onclick="javascript:setInheritedVisible(true,'Method');" href="#methodSummary" class="showHideLink"><img src="../../../../images/collapsed.gif" class="showHideLinkImage"> Show Inherited Public Methods</a>
</div>
</div>
<table id="summaryTableMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#AsyncDataRequest()">AsyncDataRequest</a>(featureName:String, options:<a href="RequestOptions.html">RequestOptions</a>)</div>
<div class="summaryTableDescription">
   Constructor of this request event dispatcher.</div>
</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#addCompleteHandler()">addCompleteHandler</a>(callback:Function):<a href="../features/AsyncDataRequest.html">AsyncDataRequest</a>
</div>
<div class="summaryTableDescription">
   The quick short-cut for adding a callback function when request succeed.</div>
</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#addErrorHandler()">addErrorHandler</a>(callback:Function):<a href="../features/AsyncDataRequest.html">AsyncDataRequest</a>
</div>
<div class="summaryTableDescription">
   The quick short-cut for adding a callback function when request failed.</div>
</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
<tr class="hideInheritedMethod">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="AsyncRequest.html#assertFeature()">assertFeature</a>(featureName:String):void</div>
<div class="summaryTableDescription">
   Checks the feature name.</div>
</td><td class="summaryTableOwnerCol"><a href="AsyncRequest.html">AsyncRequest</a></td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#getOptions()">getOptions</a>():<a href="../features/RequestOptions.html">RequestOptions</a>
</div>
<div class="summaryTableDescription">
   Gets the request options object.</div>
</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
<tr class="hideInheritedMethod">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol"><img class="inheritedSummaryImage" title="Inherited" alt="Inherited" src="../../../../images/inheritedSummary.gif"></td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="AsyncRequest.html#send()">send</a>(client:<a href="../core/OpenSocialClient.html">OpenSocialClient</a>):void</div>
<div class="summaryTableDescription">
   Sends out the request using client's async call api.</div>
</td><td class="summaryTableOwnerCol"><a href="AsyncRequest.html">AsyncRequest</a></td>
</tr>
</table>
</div>
<a name="protectedMethodSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Protected Methods</div>
<table id="summaryTableProtectedMethod" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Method</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#callback()">callback</a>(rawData:*):void</div>
<div class="summaryTableDescription">
   The function for the async callback which is registered on the client callback manager.</div>
</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
</table>
</div>
<a name="eventSummary"></a>
<div class="summarySection">
<div class="summaryTableTitle">Events</div>
<table id="summaryTableEvent" class="summaryTable " cellpadding="3" cellspacing="0">
<tr>
<th>&nbsp;</th><th colspan="2">Event</th><th>Summary</th><th class="summaryTableOwnerCol">Defined&nbsp;by</th>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#event:complete">complete</a>
</div>
</td><td class="summaryTableDescription summaryTableCol">
 Dispatched when the data request complete and with a <code>ResponseItem</code> object returned.</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
<tr class="">
<td class="summaryTablePaddingCol">&nbsp;</td><td class="summaryTableInheritanceCol">&nbsp;</td><td class="summaryTableSignatureCol">
<div class="summarySignature">
<a class="signatureLink" href="#event:error">error</a>
</div>
</td><td class="summaryTableDescription summaryTableCol">
 Dispatched when the request got error.</td><td class="summaryTableOwnerCol">AsyncDataRequest</td>
</tr>
</table>
</div>
<script type="text/javascript" language="javascript">
<!--
showHideInherited();
--></script>
<div class="MainContent">
<a name="constructorDetail"></a>
<div class="detailSectionHeader">Constructor detail</div>
<a name="AsyncDataRequest()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">AsyncDataRequest</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">constructor</td>
</tr>
</table>
<div class="detailBody">
<code>public function AsyncDataRequest(featureName:String, options:<a href="RequestOptions.html">RequestOptions</a>)</code><p>
   Constructor of this request event dispatcher.
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">featureName</span>:String</code> &mdash; The feature to be executed.
   </td>
</tr>
<tr>
<td class="paramSpacer">&nbsp;</td>
</tr>
<tr>
<td width="20px"></td><td><code><span class="label">options</span>:<a href="RequestOptions.html">RequestOptions</a></code> &mdash; The initial options object for this request.
   </td>
</tr>
</table>
</div>
<a name="methodDetail"></a>
<div class="detailSectionHeader">Method detail</div>
<a name="addCompleteHandler()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">addCompleteHandler</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td>
</tr>
</table>
<div class="detailBody">
<code>public function addCompleteHandler(callback:Function):<a href="../features/AsyncDataRequest.html">AsyncDataRequest</a></code><p>
   The quick short-cut for adding a callback function when request succeed. It wraps the async
   request from event-driven style to a simple callback style.
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">callback</span>:Function</code> &mdash; The callback function
   </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="../features/AsyncDataRequest.html">AsyncDataRequest</a></code> &mdash; 
                        The request instance itself.
   
                        
                     </td>
</tr>
</table>
</div>
<a name="addErrorHandler()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">addErrorHandler</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function addErrorHandler(callback:Function):<a href="../features/AsyncDataRequest.html">AsyncDataRequest</a></code><p>
   The quick short-cut for adding a callback function when request failed. It wraps the async
   request from event-driven style to a simple callback style.
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">callback</span>:Function</code> &mdash; The callback function
   </td>
</tr>
</table>
<p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="../features/AsyncDataRequest.html">AsyncDataRequest</a></code> &mdash; 
                        The request instance itself.
   
                        
                     </td>
</tr>
</table>
</div>
<a name="callback()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">callback</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>protected override function callback(rawData:*):void</code><p>
   The function for the async callback which is registered on the client callback manager.
   It takes in the async response raw data to create a corresponding event then dispatches it.
   This function will be override by derieved classes.
   </p><span class="label">Parameters</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20px"></td><td><code><span class="label">rawData</span>:*</code> &mdash; The responseItem object from parser.
   </td>
</tr>
</table>
</div>
<a name="getOptions()"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">getOptions</td><td class="detailHeaderParens">()</td><td class="detailHeaderType">method</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<code>public function getOptions():<a href="../features/RequestOptions.html">RequestOptions</a></code><p>
   Gets the request options object.
   </p><p></p>
<span class="label">Returns</span>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="20"></td><td><code><a href="../features/RequestOptions.html">RequestOptions</a></code> &mdash; 
                        The request options object.
   
                        
                     </td>
</tr>
</table>
</div>
<div class="detailSectionHeader">Event detail</div>
<a name="event:complete"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">complete</td><td class="detailHeaderType">event&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<span class="label">Event object type: </span><a href=""><code>org.opensocial.client.features.ResponseItemEvent.COMPLETE</code></a>
<br>
<span class="label">COMPLETE.type property = </span><a href="../features/ResponseItemEvent.html#COMPLETE"><code>org.opensocial.client.features.ResponseItemEvent.COMPLETE</code></a>
<br><p>
 Dispatched when the data request complete and with a <code>ResponseItem</code> object returned.
 </p><p>
   For the event dispatched when the OpenSocial data request get responsed.
   </p></div>
<a name="event:error"></a>
<table cellspacing="0" cellpadding="0" class="detailHeader">
<tr>
<td class="detailHeaderName">error</td><td class="detailHeaderType">event&nbsp;</td><td class="detailHeaderRule">&nbsp;</td>
</tr>
</table>
<div class="detailBody">
<span class="label">Event object type: </span><a href=""><code>org.opensocial.client.features.ResponseItemEvent.ERROR</code></a>
<br>
<span class="label">ERROR.type property = </span><a href="../features/ResponseItemEvent.html#ERROR"><code>org.opensocial.client.features.ResponseItemEvent.ERROR</code></a>
<br><p>
 Dispatched when the request got error.
 </p><p>
   For the event dispatched when the OpenSocial data request get error.
   </p></div>
<br>
<br>
<hr>
<br>
<p></p>
<center class="copyright">2010 OpenSocial</center>
</div>
</body>
</html>
<!--2010 OpenSocial-->
